package design.patterns.builder.framework;

/**
 * @Desc:   客户端负责创建导演者和具体建造者对象，客户端把具体建造者对象交给导演者
 *          客户端触发建造命令，导演者操纵具体建造者，开始创建产品，具体建造者每接
 *          到导演者一个指令，便按照指令向产品上增加一个构件，当产品完成后，建造者
 *          把产品返还给客户端
 *              虽然客户端确实是具体建造者对象，但是操纵具体建造者的任务却是属于导
 *          演者对象的，把创建具体建造者对象的任务交给客户端而不是导演者对象，是为
 *          了将导演者对象与具体建造者对象的耦合变成动态的，从而使导演者对象可以操
 *           vf
 * @author: cww
 * @DateTime: 2020-06-08 20:04
 */

public class MainClient {
    public static void main(String[] args) {
        Builder builder = new ConcreteBuilder();
        Director director = new Director();
        director.construct();
        Product product = builder.retrievedProduct();
    }
}
